
(function($){

	$.fn.specialSelect = function(){
		var popMe = function(n){
							var x={}
							n.find('select > option').each( function(){
														x[ $(this).val() ] = $(this).text()
													})

							n.find("input[type='hidden']").val( $.param(x) )
						}
		this.each(function() {
			$this = $(this)
			$this.find("div:eq(1) > button:eq(0)").bind("click", $this.find("div:eq(0)"),
					function(e){
						s=e.data.find("select")
						n=s.attr("selectedIndex")
						s.find("option:eq("+n+")").insertBefore(s.find("option:eq("+(n-1)+")"))
						popMe( e.data )
						return false;
					})
			$this.find("div:eq(1) > button:eq(1)").bind("click", $this.find("div:eq(0)"),
					function(e){
						s=e.data.find("select")
						n=s.attr("selectedIndex")
						s.find("option:eq("+n+")").insertAfter(s.find("option:eq("+(n+1)+")"))
						popMe( e.data )
						return false;
					})
			$this.find("div:eq(1) > button:eq(2)").bind("click", $this.find("div:eq(0)"), 
					function(e){
						s=e.data.find("select")
						n=s.attr("selectedIndex")
						s.find("option:eq("+n+")").remove()
						popMe( e.data )
						return false;
					})
			$this.find("select").bind( "change", $this.find("div:eq(1)"),
								function(e){
									e.data.find("button").attr("disabled", this.selectedIndex == -1)
									return false
								})
			popMe( $this.find("div:eq(0)") )
		})
	}

}(jQuery));


